# 创建一个生成器表达式，生成从0到9999的整数序列
# 生成器表达式不会立即生成所有元素，而是按需生成，节省内存
range_ = (i for i in range(10000))
print(range_)  # 打印生成器对象，而不是生成器中的元素

# 使用列表推导式生成一个包含0到9的整数列表
# 列表推导式会立即生成所有元素并存储在列表中
in_range_ = [i for i in range(10)]
print(in_range_)  # 打印生成的列表

# 使用列表推导式生成一个包含0到9之间所有偶数的列表
# 列表推导式中的条件语句过滤掉奇数
list = [i for i in range(10) if i % 2 == 0]
print(list)  # 打印生成的偶数列表

# 使用嵌套列表推导式生成一个包含0到9之间所有整数对的二维列表
# 外层循环遍历0到9，内层循环也遍历0到9，生成所有可能的(i, j)对
j_in_range_ = [(i, j) for i in range(10) for (j) in range(10)]
print(f"打印生成的二维列表:{j_in_range_}")  # 打印生成的二维列表

# 使用字典推导式生成一个字典，键为0到9的整数，值为键的平方
# 字典推导式会立即生成所有键值对并存储在字典中
i_in_range_ = {i: i ** 2 for i in range(10)}
print(f"打印生成的字典:{i_in_range_}")  # 打印生成的字典

# 使用字典推导式将两个列表合并为一个字典
# 第一个列表的元素作为键，第二个列表的元素作为值
list1 = ["a", "b", "c"]
list2 = [1, 2, 3]
list_d = {list1[i]: list2[i] for i in range(len(list2))}
print(f"打印生成的字典:{list_d}")  # 打印生成的字典

# 提取字典中的目标值
# 使用字典推导式从字典中提取目标值
dict1 = {"mbp": 10000, "dell": 8000, "hp": 6000, "lenovo": 5000}
# 目标值为8000
target_value = 8000
# 使用字典推导式提取目标值
value_ = {k: v for k, v in dict1.items() if v >= target_value}
print(f"打印生成的字典:{value_}")  # 打印生成的字典
